/**
 * @Description CouponConstants.java
 * @author xu_cc [18724000100@163.com]
 * @date 创建时间：2017年11月16日 上午11:16:28
 */
package com.solution.admin.coupon.constants;

import java.util.HashMap;
import java.util.Map;

/**
 * 优惠券常用常量
 * 
 * @author xu_cc
 * @date 创建时间：2017年11月16日 上午11:16:32
 */
public class CouponConstants {

    /**
     * 有效期类型
     * 
     * @author xu_cc
     * @date 创建时间：2017年11月16日 上午11:17:39
     */
    public interface TimeType {
        /** 起止时间段 */
        public static final Integer TIME_START_STOP = 1;
        /** 时长（XXX天，开始时间为领用时间，需要计算结束日期） */
        public static final Integer TIME_DAYS = 2;
    }

    /**
     * 是否已用
     * 
     * @author xu_cc
     * @date 创建时间：2017年11月16日 上午11:21:19
     */
    public interface IsUsed {
        /** 已使用 */
        public static final Integer USED = 1;
        /** 尚未使用 */
        public static final Integer UN_USED = 0;
    }
    
    
    /**
	 *  红包领取、使用类型
	 */
	public enum COUPON_TARGET_TYPE {
		GET("1", "领取"), 
		USE("2", "使用");
		
		private String code;
		private String name;

		private COUPON_TARGET_TYPE(String code, String name ) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}
	}
	
	/**
	 *  红包领取、使用类型
	 */
	public enum COUPON_APPROVE_STATUS {
		TO_APPROVE("01", "待审核"), 
		APPROVE_PASS("02", "通过"),
		APPROVE_BACK("03", "驳回");
		
		private String code;
		private String name;

		private COUPON_APPROVE_STATUS(String code, String name ) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}
	}
    
    
    /**
     * 红包领用限制参数前缀
     */
    public static final Map<String, String> GET_TARGET_PREFFIX = new HashMap<String, String>();
    static{
    	GET_TARGET_PREFFIX.put("01", "cus_");
    	GET_TARGET_PREFFIX.put("02", "cus_leve_");
    	GET_TARGET_PREFFIX.put("03", "cus_area_");
    	GET_TARGET_PREFFIX.put("04", "salesman_");
    	GET_TARGET_PREFFIX.put("05", "");
    }
    
    /**
	 *  红包领取对象类型
	 */
	public enum COUPON_GET_TARGET_TYPE {
		CUS("01", "指定客户", "cus_"), 
		CUS_LEVEL("02", "指定客户级别", "cus_level_"), 
		CUS_AREA("03", "指定客户区域","cus_area_"), 
		SALEMSNA("04", "指定业务员","salesman_"),
		ALL("05","","");
		
		private String code;
		private String name;
		private String tagPreffix;

		private COUPON_GET_TARGET_TYPE(String code, String name , String tagPreffix) {
			this.code = code;
			this.name = name;
			this.tagPreffix = tagPreffix;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public String getTagPreffix() {
			return tagPreffix;
		}

		public void setTagPreffix(String tagPreffix) {
			this.tagPreffix = tagPreffix;
		}

	}
	
	
	/**
     * 红包使用限制参数前缀
     */
    public static final Map<String, String> USE_TARGET_PREFFIX = new HashMap<String, String>();
    static{
    	USE_TARGET_PREFFIX.put("01", "product_");
    	USE_TARGET_PREFFIX.put("02", "product_category_");
    	USE_TARGET_PREFFIX.put("03", "product_brand_");
    	USE_TARGET_PREFFIX.put("04", "");
    }
	
	/**
	 *  红包使用限制类型
	 */
	public enum COUPON_USE_TARGET_TYPE {
		PRODUCT("01", "指定商品", "product_"), 
		PRODUCT_CATEGORY("02", "指定商品分类", "product_category_"), 
		PRODUCT_BRAND("03", "指定商品品牌","product_brand_"), 
		ALL("04","","");
		
		private String code;
		private String name;
		private String tagPreffix;

		private COUPON_USE_TARGET_TYPE(String code, String name , String tagPreffix) {
			this.code = code;
			this.name = name;
			this.tagPreffix = tagPreffix;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public String getTagPreffix() {
			return tagPreffix;
		}

		public void setTagPreffix(String tagPreffix) {
			this.tagPreffix = tagPreffix;
		}

	}
    
    
}
